From ea1969d24b0a1941151a49bfc1571715569bc20a Mon Sep 17 00:00:00 2001 From: Kenichi Handa Date: Sat, 30 Dec 2000 02:28:42 +0000 Subject: [PATCH] (find_composition): Fix a code for searching a composition backward. --- src/composite.c | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/src/composite.c b/src/composite.c index 2ffc33d651e..83d5b0d6f25 100644 --- a/src/composite.c +++ b/src/composite.c @@ -422,14 +422,25 @@ find_composition (pos, limit, start, end, prop, object) return 0; if (limit > pos) /* search forward */ - val = Fnext_single_property_change (make_number (pos), Qcomposition, - object, make_number (limit)); + { + val = Fnext_single_property_change (make_number (pos), Qcomposition, + object, make_number (limit)); + pos = XINT (val); + if (pos == limit) + return 0; + } else /* search backward */ - val = Fprevious_single_property_change (make_number (pos), Qcomposition, - object, make_number (limit)); - pos = XINT (val); - if (pos == limit) - return 0; + { + if (get_property_and_range (pos - 1, Qcomposition, prop, start, end, + object)) + return 1; + val = Fprevious_single_property_change (make_number (pos), Qcomposition, + object, make_number (limit)); + pos = XINT (val); + if (pos == limit) + return 0; + pos--; + } get_property_and_range (pos, Qcomposition, prop, start, end, object); return 1; } -- 2.30.2